Systems and methods for enabling a user to generate a plan to access content using multiple content services

ABSTRACT

A system for facilitating access to items of content presents recommendations to a user. Items of content may include movies and television shows. Recommendations may include access plans specifying a plurality of digital media services, where each specified digital media service provides availability to items of content included in a user defined set. Further, recommendations may he based on one or more use defined constraints. User defined constraints may include a user budget for accessing items of content during a specific time period.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/882,560, filed on Jan. 29, 2018, which is a continuation of U.S.patent application Ser. No. 14/840,785, filed on Aug. 31, 2015 andissued on Jan. 30, 2018 as U.S. Pat. No. 9,883,245. The contents of theabove applications are incorporated herein by reference in theirentireties.

TECHNICAL FIELD

The present disclosure relates to the field of interactive televisionand graphical user interfaces.

BACKGROUND

Digital media playback capabilities may be incorporated into a widerange of devices, including digital televisions, including so-called“smart” televisions, set-top boxes, laptop or desktop computers, tabletcomputers, e-book readers, digital recording devices, digital mediaplayers, video gaming devices, digital cameras, cellular phones,including so-called “smart” phones, and dedicated video streamingdevices. Digital media content may originate from a plurality of sourcesincluding, for example, over-the-air television providers, satellitetelevision providers, cable television providers, and onlinemedia-sharing services, including, online media streaming anddownloading services. Further, devices with digital media playbackcapabilities may provide a user with interfaces, including graphicaluser interfaces (GUIs), that enable the user to select an item ofcontent.

Due to the wide range of content users may access on devices withdigital media playback capabilities, traditional interfaces and currenttechniques for organizing, sorting, and displaying available items ofcontent may be less than ideal. Traditional interfaces and currenttechniques may be less than ideal when a user wishes to access aparticular item of digital media content from one of a pluralitypotential sources.

SUMMARY

The following brief summary is not intended to include all features andaspects of the present invention, nor does it imply that the inventionmust include all features and aspects discussed in this summary. Thepresent disclosure relates to techniques for enabling users to accessdigital media content and more specifically describes techniques andtools for enabling a user to efficiently access items of content. Itshould be noted that as used herein the term item of content may atleast include individual items of digital content (e.g., video files,music files, digital images, etc.), and collections of individual itemsof digital content (e.g., a television series, an album of music files,an album of digital images, etc.). In some examples, the techniquesdescribed herein may be implemented in a device with digital mediaplayback capabilities, including, for example, set-top boxes,televisions, laptop or desktop computers, gaming consoles, dedicatedstreaming devices, and/or an associated companion device, including, forexample, remote controllers, tablet computers, and smart phones. Itshould be noted that in some instances the techniques described hereinmay be generally be applicable to devices capable of displayinggraphical user interfaces and rendering digital content.

According to one example of the disclosure, a method of facilitatingaccess to items of content comprises presenting a graphical userinterface enabling a user to set constraints with respect to accessingitems of content, providing a graphical user interface enabling a userto define a subset of items of content from a set of items of content,receiving one or more access plans based at least in part on theconstraints and the subset of items of content, and presenting agraphical user interface enabling a user to accept one of the one ormore access plans.

According to another example of the disclosure, a device forfacilitating access to items of content comprises one or more processorsconfigured to present a graphical user interface enabling a user to setconstraints with respect to accessing items of content, provide agraphical user interface enabling a user to define a subset of items ofcontent from a set of items of content, receive one or more access plansbased at least in part on the constraints and the subset of items ofcontent, and present a graphical user interface enabling a user toaccept one of the one or more access plans.

According to another example of the disclosure, an apparatus forfacilitating access to items of content comprises means for presenting agraphical user interface enabling a user to set constraints with respectto accessing items of content, means for providing a graphical userinterface enabling a user to define a subset of items of content from aset of items of content, means for receiving one or more access plansbased at least in part on the constraints and the subset of items ofcontent, and means for presenting a graphical user interface enabling auser to accept one of the one or more access plans.

According to another example of the disclosure, a non-transitorycomputer-readable storage medium has instructions stored thereon thatupon execution cause one or more processors of a device to present agraphical user interface enabling a user to set constraints with respectto accessing items of content, provide a graphical user interfaceenabling a user to define a subset of items of content from a set ofitems of content, receive one or more access plans based at least inpart on the constraints and the subset of items of content, and presenta graphical user interface enabling a user to accept one of the one ormore access plans.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description and drawings, and fromthe claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is block diagram illustrating an example of a system that mayimplement one or more techniques of this disclosure.

FIG. 2A is a block diagram illustrating an example of a computing devicethat may implement one or more techniques of this disclosure.

FIG. 2B is a conceptual diagram illustrating an example of aninput/output device that may implement one or more techniques of thisdisclosure.

FIG. 3 is a conceptual communications flow diagram illustrating anexample method for enabling a user to access items of content accordingto one or more of the techniques of this disclosure.

FIG. 4 is a conceptual diagram illustrating an example graphical userinterface that may implement one or more techniques of this disclosure.

FIG. 5A-5B are conceptual diagrams illustrating an example graphicaluser interface that may implement one or more techniques of thisdisclosure.

FIG. 6A-6C are conceptual diagrams illustrating an example graphicaluser interface that may implement one or more techniques of thisdisclosure.

FIG. 7 is a conceptual diagram illustrating an example graphical userinterface that may implement one or more techniques of this disclosure.

FIG. 8 is a conceptual diagram illustrating an example graphical userinterface that may implement one or more techniques of this disclosure.

DETAILED DESCRIPTION

Described herein are systems and methods for enabling a user to accessitems of content. Some embodiments extend to a machine-readable mediumembodying instructions which, when executed by a machine, cause themachine to perform any one or more of the methodologies describedherein. Other features will be apparent from the accompanying drawingsand from the detailed description that follows. Examples merely typifypossible variations. Unless explicitly stated otherwise, components andfunctions are optional and may be combined or subdivided, and operationsmay vary in sequence or may be combined or subdivided. In the followingdescription, for purposes of explanation, numerous specific details areset forth to provide a thorough understanding of example embodiments. Itwill be evident to one skilled in the art, however, that the presentsubject matter may be practiced without these specific details.

Devices with digital media playback capabilities may enable a user toaccess items of content from diverse sources. For example, devices withdigital media playback capabilities, including, for example,televisions, set-top boxes, laptop or desktop computers, tabletcomputers, video gaming devices, smart phones, and dedicated videostreaming devices may enable a user thereof to access digital mediacontent through one or more digital media content services. Examples ofdigital media content services include streaming services, televisionservices, and combinations thereof. Current commercial examples ofstreaming services include streaming services available fromAmazon.com®, Inc., Crackle®, Inc., Hulu®, LLC, Netflix®, Inc., andVUDU®, Inc. Current commercial examples of combinations of televisionand streaming services include services available from the Comcast®Corporation, DirecTV®, LLC and Home Box Office®, Inc. It should be notedthat as used herein the term digital media content services may includeservices available free of charge (e.g., an advertisement supportedservice), services available in exchange for a recurring fee (e.g., amonthly subscription fee), services available on a pay per use basis(e.g., a fee to access a particular item of content), and/orcombinations thereof. Further, as used herein, digital media servicesmay refer to any service providing users access to digital mediacontent, regardless of a particular delivery mechanism.

The availability of particular items of content and the cost to accessparticular items of content varies for respective digital mediaservices. For example, a cable television provider may provide a useraccess to a movie (e.g., via a television provider network and/or theInternet) for a 24 hour period for a cost of $5.99, a streaming servicemay provide a user access to the same movie for a 24 hour period for acost of $3.99, these examples may be referred to as pay per useaccessibility. Further, a subscription based streaming service mayprovide a user with unlimited access to the same movie as part of amonthly subscription fee (e.g., $9.99), an advertisement supportedstreaming service may provide a user with unlimited access to a lowerquality version of the same movie including commercial interruptions forfree, and/or another service may not provide a user access to the movie.It should be noted that in some examples, a service provider may providea user with streaming services on an a la carte basis. That is, forexample, a service provider may enable a user to subscribe to one ormore television network (i.e., “channel”) affiliated streaming services.

Digital media services may include respective search engines. That is,for example, digital media services may include a website enabling auser to search for items of content available through that particularservice. In order for a user to determine the availability andaccessibility of a particular item of content across multiple services,a user may perform searches for the particular item of content usingrespective search engines available on websites maintained by serviceproviders. Performing multiple searches in this manner may be timeconsuming and inconvenient for a user. Further, the availability ofparticular items of content varies on a frequent basis. That is, forexample, an item of content may be available through a service for alimited time. Thus, in some cases, in order for a user to accuratelydetermine the availability and accessibility of a particular item ofcontent across multiple services, a user may need to perform multiplesearches using a web browser on a weekly or daily basis.

It should be noted that sonic websites may provide aggregate searchresults for multiple digital media services. That is, websites maypresent combined search results from multiple service search engines inresponse to a query for an item of content. A commercial example of awebsite including aggregate search results includes the Flixster™website maintained by Flixster. Inc. Although, these websites may save auser time by enabling a user to avoid entering a search term intomultiple websites, current websites that aggregate search results areless than ideal. For example, in sonic cases, devices with digital mediaplayback capabilities may enable a user to access services usingrespective dedicated applications and may not support full web browsingcapabilities. That is, a website with aggregate search capabilities maynot be fully accessible on a device having digital media playbackcapabilities. Further, due to the frequent changes in contentavailability, as described above, in order for a user to accuratelydetermine the availability and accessibility of a particular item ofcontent across multiple services, a user may still need to performsearches on a frequent basis.

It may be desirable for a user of a device having digital media playbackcapabilities to schedule and/or plan how to access particular items ofcontent for a given time period. For example, every Friday night duringa month, a user may wish to watch a movie selected from set of moviesthat are of interest to a user (e.g., new releases, action/adventure,preferred director, Academy Award nominees, etc.). For example, a usermay wish to watch four of the 17 Academy Award Best Picture Nomineesfrom 2014 and 2015 during a month (e.g., one every Friday night). Asdescribed above, it may be difficult and time consuming for a user toaccurately determine the availability and accessibility of a particularitem of content across multiple services using current techniques.Further, it may be even more difficult and time consuming for a user todetermine the availability and accessibility of particular items ofcontent within a defined set of items of content across multipleservices using current techniques.

Additionally, a user may have one or more constraints with respect toaccessing particular items of content within a defined set of items ofcontent. For example, a user may have a limited budget for accessingitems of content (e.g., $9.99 a month), a user may have schedulingpreferences (e.g., wishes to watch multiple movies during a holidayweekend), and/or a user may prioritize certain items of content withinthe defined set of items of content higher than others (e.g., has apreference for the most recent Academy Award Best Picture Nominees). Thesystems and techniques described herein may enable a user to define aset of items of content, set constraints with respect to accessing itemsof content, and receive a one or more content access plans. The systemsand techniques described herein may improve current computer implementedtechniques for accessing items of content by more efficiently presentinginformation to a user and/or more efficiently enabling a user to provideinformation to a computing system.

FIG. 1 is block diagram illustrating an example of a system that mayimplement one or more techniques described in this disclosure. System100 may be configured to enable a user to access items of content inaccordance with the techniques described herein. In the exampleillustrated in FIG. 1, system 100 includes one or more computing devices102A-102N, communications network 104, television service provider site110, one or more media service provider sites 118A-118N, webpage contentdistribution site 120, application distribution site 122, searchaggregator 124, and content assistant engine 126. System 100 may includesoftware modules operating on one or more servers. Software modules maybe stored in a memory and executed a processor. Servers may include oneor more processors and a plurality of internal and/or external memorydevices. Examples of memory devices include file servers, file transferprotocol (FTP) servers, network attached storage (NAS) devices, localdisk drives, or any other type of device or storage medium capable ofstoring data. Storage media may include Blu-ray discs, DVDs, CD-ROMs,flash memory, or any other suitable digital storage media. When thetechniques described herein are implemented partially in software, adevice may store instructions for the software in a suitable,non-transitory computer-readable medium and execute the instructions inhardware using one or more processors.

System 100 represents an example of a system that may be configured toallow digital content, such as, for example, music, videos, images,webpages, messages, voice communications, and applications, to bedistributed to and accessed by a plurality of computing devices, such ascomputing devices 102A-102N. In the example illustrated in FIG. 1,computing devices 102A-102N may include any device configured totransmit data to and/or receive data from communication network 104. Forexample, computing devices 102A-102N may be equipped for wired and/orwireless communications and may include set-top boxes, digital videorecorders, televisions, desktop, laptop, or tablet computers, gamingconsoles, mobile devices, including, for example. “smart” phones,cellular telephones, and personal gaming devices. It should be notedthat although example system 100 is illustrated as having distinctsites, such an illustration is for descriptive purposes and does notlimit system 100 to a particular physical architecture. Functions ofsystem 100 and sites included therein may be realized using anycombination of hardware, firmware and/or software implementations.

Communications network 104 may comprise any combination of wirelessand/or wired communication media. Communications network 104 may includecoaxial cables, fiber optic cables, twisted pair cables, wirelesstransmitters and receivers, routers, switches, repeaters, base stations,or any other equipment that may be useful to facilitate communicationsbetween various devices and sites. Communications network 104 mayoperate according to a combination of one or more telecommunicationprotocols. Telecommunications protocols may include proprietary aspectsand/or may include standardized telecommunication protocols. Examples ofstandardized telecommunications protocols include Digital VideoBroadcasting (DVB) standards, Advanced Television Systems Committee(ATSC) standards, Integrated Services Digital Broadcasting (ISDB)standards, Data Over Cable Service Interface Specification (DOCSIS)standards, Global System Mobile Communications (GSM) standards, codedivision multiple access (CDMA) standards, 3rd Generation PartnershipProject (3GPP) standards, European Telecommunications Standardsinstitute (ETSI) standards. Internet Protocol (IP) standards, WirelessApplication Protocol (WAP) standards, and IEEE standards, such as, forexample, one or more of standards included in the IEEE 802 family ofstandards.

As illustrated in FIG. 1, networks of different types may be definedwithin communications network 104. Networks may be defined according tophysical and/or logical aspects. For example, networks that share thesame physical infrastructure (e.g., coaxial cables) may be distinguishedbased on a primary service type (e.g., webpage access or televisionservice) or communications protocols (e.g.. IP/TCP or MPEG-TS). In theexample illustrated in FIG. 1, communications network 104 includestelevision provider network 106 and public network 108. It should benoted that although television provider network 106 and public network108 are illustrated as distinct, television provider network 106 andpublic network 108 may share physical and/or logical aspects.

Television provider network 106 is an example of a network configured toprovide a user with television services. For example, televisionprovider network 106 may include public over-the-air televisionnetworks, public or subscription-based satellite television serviceprovider networks, and public or subscription-based cable televisionprovider networks. It should be noted that although in some examplestelevision provider network 106 may primarily be used to providetelevision services, television provider network 106 may also provideother types of data and services according to any combination of thetelecommunication protocols described herein.

Public network 108 is an example of a packet-based network, such as, alocal area network, a wide-area network, or a global network, such asthe Internet, configured to provide a user with World Wide Web basedservices. Public network 108 may be configured to operate according toInternet Protocol (IP) standards. It should be noted that although insome examples public network 108 may primarily be used to provide accessto hypertext web pages, public network 108 may also provide other typesof media content according to any combination of the telecommunicationprotocol described herein.

Referring again to FIG. 1. television service provider site 110 may beconfigured to provide computing devices 102A-102N with televisionservice. For example, television service provider site 110 may include apublic broadcast station, a cable television provider, or a satellitetelevision provider and may be configured to provide television servicesto analog and/or digital televisions and set-top boxes. In the exampleillustrated in FIG. 1, television service provider site 110 includes onair distribution engine 112 and on demand engine 114. On airdistribution engine 112 may be configured to receive a plurality of onair feeds and distribute the feeds to computing devices 102A-102Nthrough television provider network 106. For example, on airdistribution engine 112 may be configured to receive one or moreover-the-air television broadcasts via a satellite uplink/downlink anddistribute the over-the-air television broadcasts to one or more usersof a subscription-based cable television service.

On demand engine 114 may be configured to access a library of multimediacontent and distribute multimedia content to one or more of computingdevices 102A-102N through television provider network 106. For example,on demand engine 114 may access multimedia content (e.g., music, movies,and TV shows) stored in multimedia database 116A and provide asubscriber of a cable television service with movies on a Pay Per View(PPV) basis. For example, a user may purchase access to an item ofcontent for a limited period (e.g., 24 hour access to a movie for$4.99). Multimedia database 116A may include storage devices configuredto store multimedia content. It should be noted that multimedia contentaccessed through on demand engine 114 may also be located at varioussites within system 100 (e.g., peer-to-peer distribution).

Media service provider sites 118A-118N represent examples of multimediaservice providers. Media service provider sites 118A-118N may beconfigured to access a library of multimedia content and distributemultimedia content to one or more of computing devices 102A-102N throughpublic network 108. For example, media service provider sites 118A-118Nmay access multimedia (e.g., music, movies and TV shows) stored inmultimedia databases 116B-116N and provide a user of a media servicewith multimedia. Multimedia databases 116B-116N may include storagedevices configured to store multimedia content. In one example, a mediaservice provider site may be configured to provide content to one ormore of computing devices 102A-102N using the Internet protocol suite.In some examples, a media service may be referred to as a streamingservice. Commercial examples of streaming services are described aboveand may also include television network based streaming services (e.g.,movies available from a Tuner Broadcasting Corporation website through acable television subscription). As described above, television providernetwork 106 and public network 108 may share physical and logicalaspects. Thus, content accessed by one or more of computing devices102A-102N through a media service provider site 118A-118N may betransmitted through physical components of television provider network106. For example, a user of one of computing devices 102A-102N mayaccess the Internet and multimedia content provided by a media servicethrough a cable modem connected to a coaxial network maintained by acable television provider. Further, as described above, a media servicemay by associated with a search engine. Thus, in one example mediaservice provider sites 118A-118N may include respective search enginesenabling a user to search for items of content available on multimediadatabases 116B-116N.

Webpage content distribution site 120 represents an example of a webpageservice provider. Webpage content distribution site 120 may beconfigured to provide hypertext based content to one or more ofcomputing devices 102A-102N through public network 108. It should benoted that hypertext based content may include audio and video content.Hypertext content may be defined according to programming languages,such as, for example, Hypertext Markup Language (HTML), Dynamic HTML,and Extensible Markup Language (XML). Examples of webpage contentdistribution sites include the United States Patent and Trademark Officewebsite. As described above, digital media services may be associatedwith a website enabling a user to search for items of content accessiblethrough that particular service. Webpage content distribution site 120may include a website including a search engine associated with adigital media content services.

Application distribution site 122 represents an example of anapplication distribution service. Application distribution site 122 maybe configured to distribute developed software applications to one ormore of computing devices 102A-102N. In one example, softwareapplications may include games and programs operable on computingdevices. In other examples, software applications may be configured toallow a computing device to access content provided by a webpage contentdistribution site in manner specific to the computing device. Forexample, software applications may be configured to provide enhanced orreduced functionality of a webpage to a mobile device or a set-top box.In one example, a software application may enable a user to access amedia service on a particular device. For example, a softwareapplication may enable a user to access a streaming service using agaming console.

Software applications may be developed using a programming language.Examples of programming languages include, Java™, C, C++, Perl, UNIXShell®, Visual Basic®, and Visual Basic® Script. In some examples,developers may write software applications using a software developmentkit (SDK) provided by a device manufacturer or a service provider. Inthe example where one or more of computing devices 102A-102N are mobiledevices, application distribution site 122 may be maintained by a mobiledevice manufacturer, a service provider, and/or a mobile deviceoperating system provider. In the example where one or more of computingdevices 102A-102N are set-top boxes, application distribution site 122may be maintained by a set-top box manufacturer, a service provider,and/or an operating system provider. In some examples, an applicationdistribution site may be referred to as an app store. Examples ofcommercially available application distribution sites include sitesmaintained by Google®, Inc., Apple®, Inc., BlackBerry®, Inc.,Microsoft®, Inc., and Amazon.com®, Inc.

Referring again to FIG. 1, search aggregator 124 represents an exampleof a system configured to perform plurality of queries and generateaggregated results. Content assistant engine 126 represents an exampleof a system configured to receive user constraints, receive a subset ofitems of content, and generate access plans. As described above,functions of system 100 and sites included therein may be realized usingany combination of hardware, firmware and/or software implementations.Thus, elements of the techniques described herein may be distributedthroughout system 100. For example, one or more functions respectivelydescribed as being performed by of search aggregator 124 and contentassistant engine 126 may be performed using hardware, firmware, and/orsoftware included as part of a computing device 102A-102N and/or may beperformed using hardware, firmware, and/or software included as part ofa distinct site. The distribution of elements of the techniquesdescribed herein may be based on the capabilities of a computing device.For example, a computing device with relatively limited processingcapabilities may perform fewer elements of a technique than a computingdevice with relatively higher processing capabilities.

FIG. 2A is a block diagram illustrating an example of a computing devicethat may implement one or more techniques of this disclosure. Computingdevice 200 is an example of a computing device that may be configured totransmit data to and receive data from a communications network, allow auser to access multimedia content, and execute one or more applications.Computing device 200 may include or be part of a stationary computingdevice (e.g., a desktop computer, a television, a set-top box, a gainingconsole, a dedicated multimedia streaming device, or a digital videorecorder), a portable computing device (e.g., a mobile phone, a laptop,a personal data assistant (PDA), or a tablet device) or another type ofcomputing device. In the example illustrated in FIG. 2A, computingdevice 200 is configured to send and receive data via a televisionnetwork, such as, for example, television network 106 described aboveand send and receive data via a public network, such as, for example,public network 108. It should be noted that in other examples, computingdevice 200 may be configured to send and receive data through one of atelevision network 106 or a public network 108. The techniques describedherein may be utilized by devices configured to communicate using anyand all combinations of communications networks.

As illustrated in FIG. 2A, computing device 200 includes centralprocessing unit(s) 202, system memory 204, system interface 210, modern212, transport module 214, AV demux 216, network interface 218, storagedevices 220. I/O devices 222, audio decoder 224, audio processor 226,video decoder 228, graphics processing unit 230, and display processor232. As illustrated in FIG. 2A, system memory 204 includes operatingsystem 206 and applications 208. Each of processor(s) 202, system memory204, system interface 210, modem 212, transport module 214, AV demux216, network interface 218, storage devices 220. I/O devices 222, audiodecoder 224, audio processor 226, video decoder 228, graphics processingunit 230, and display processor 232 may be interconnected (physically,communicatively, and/or operatively) for inter-component communicationsand may be implemented as any of a variety of suitable circuitry, suchas one or more microprocessors, digital signal processors (DSPs),application specific integrated circuits (ASICs), field programmablegate arrays (FPGAs), discrete logic, software, hardware, firmware or anycombinations thereof. It should be noted that although example computingdevice 200 is illustrated as having distinct functional blocks, such anillustration is for descriptive purposes and does not limit computingdevice 200 to a particular hardware architecture. Functions of computingdevice 200 may be realized using any combination of hardware, firmwareand/or software implementations.

CPU(s) 202 may be configured to implement functionality and/or processinstructions for execution in computing device 200. CPU(s) 202 may becapable of retrieving and processing instructions, code, and/or datastructures for implementing one or more of the techniques describedherein. Instructions may be stored on a computer readable medium, suchas system memory 204 or storage devices 220. CPU(s) 202 may includemulti-core central processing units.

System memory 204 may be described as a non-transitory or tangiblecomputer-readable storage medium. In some examples, system memory 204may provide temporary and/or long-term storage. In some examples, systemmemory 204 or portions thereof may be described as non-volatile memoryand in other examples portions of system memory 204 may be described asvolatile memory. Examples of volatile memories include random accessmemories (RAM), dynamic random access memories (DRAM), and static randomaccess memories (SRAM). Examples of non-volatile memories includemagnetic hard discs, optical discs, floppy discs, flash memories, orforms of electrically programmable memories (EPROM) or electricallyerasable and programmable (EEPROM) memories.

System memory 204 may be configured to store information that may beused by computing device 200 during operation. System memory 204 may beused to store program instructions for execution by CPU(s) 202 and maybe used by software or applications running on computing device 200 totemporarily store information during program execution. For example,system memory 204 may store instructions associated with operatingsystem 206 and applications 208. Applications 208 may includeapplications implemented within or executed by computing device 200 andmay be implemented or contained within, operable by, executed by, and/orbe operatively/communicatively coupled to components of computing device200. Applications 208 may include instructions that may cause CPU(s) 202of computing device 200 to perform particular functions. Applications208 may include algorithms which are expressed in computer programmingstatements, such as, for-loops, while-loops, if-statements, do-loops,etc. Applications 208 may be distributed to computing device 200 throughan application distribution site, for example, application distributionsite 122, in one example, applications 208 may cause computing device200 to perform functions associated with the example techniquesdescribed herein that enable a user to access items of content.Applications 208 may cause one or more graphical user interfaces thatenable a user to provide data for use by an application. In one example,applications 208 may include one or more dedicated applications enablinga user to access a digital media service. Further, applications 208 mayperform functions associated with any component of a search aggregatorand/or any component of a content assistant engine. In one example,applications 208 may include a dedicated content assistant application.

As further illustrated in FIG. 2A, applications 208 may execute inconjunction with operating system 206. That is, operating system 206 maybe configured to facilitate the interaction of applications 208 withCPUs(s) 202, and other hardware components of computing device 200. Itshould be noted that in some examples, components of operating system206 and components acting in conjunction with operating system 206 maybe referred to as middleware. The techniques described herein may beutilized by devices configured to operate using any and all combinationsof software architectures. Operating system 206 may be an operatingsystem designed to be installed on laptops, desktops, smartphones,tablets, set-top boxes, digital video recorders, televisions and/orgaming devices. In one example, operating system 206 may include one ormore of operating systems or middleware components developed by OpenTV®,Windows® operating systems, Linux operation systems, Mac OS®, Android®operating systems, and any and all combinations thereof.

System interface 210 may be configured to enable communications betweencomponents of computing device 200. In one example, system interface 210comprises structures that enable data to be transferred from one peerdevice to another peer device or to a storage medium. For example,system interface 210 may include a chipset supporting AcceleratedGraphics Port (AGP) based protocols, Peripheral Component Interconnect(PCI) bus based protocols, such as, for example, the PCI Express™ (PCIe)bus specification, which is maintained by the Peripheral ComponentInterconnect Special Interest Group, or any other form of structure thatmay be used to interconnect peer devices.

Storage devices 220 represent memory of computing device 200 that may beconfigured to store relatively larger amounts of information forrelatively longer periods of time than system memory 204. For example,in the example where computing device 200 is included as part of adigital video recorder, storage devices 220 may be configured to storenumerous video files. Similar to system memory 204, storage device(s)220 may also include one or more non-transitory or tangiblecomputer-readable storage media. Storage device(s) 220 may includeinternal and/or external memory devices and in sonic examples mayinclude volatile and non-volatile storage elements.

I/O devices 222 may be configured to receive input and provide outputduring operation of computing device 200. Input may be generated from aninput device, such as, for example, a push-button remote control, amotion based remote control, a device including a touch-sensitivescreen, a device including a track pad, a mouse, a keyboard, amicrophone, a video camera, a motion sensor, or any other type of deviceconfigured to receive user input. In one example, an input device mayinclude an advanced user input device, such as a smart phone or a tabletcomputing device. For example, an input device may be a secondarycomputing device and may be configured to receive user input via touchgestures, buttons on the secondary computing device, and/or voicecontrol. Further, in some examples, an input device may include adisplay that is configured to display the graphical user interfacesdescribed herein. For example, in the case where computing device 200includes a television, an input device may include a smart phone incommunication with the television. In this example, a user may providecommands to a television by activating portions of a graphical userinterface displayed on a smart phone. The graphical user interfacedisplayed on the smart phone may be a replica or an extension of agraphical user interface displayed on the television, Output may beprovided to output devices, such as, for example internal speakers, anintegrated display device, and/or external components, such as, asecondary computing device. In some examples. I/O device(s) 222 may beoperatively coupled to computing device 200 using a standardizedcommunication protocol, such as for example. Universal Serial Busprotocol (USB), Bluetooth, ZigBee or a proprietary communicationsprotocol, such as, for example, a proprietary infrared communicationsprotocol.

FIG. 2B is a conceptual diagram illustrating an example of aninput/output device that may implement one or more techniques of thisdisclosure. In the example illustrated in FIG. 2B, I/O device 222 isillustrated as a push-button remote control. It should be noted thatwhile I/O device 222 is illustrated as a push-button remote control inthe example illustrated in FIG. 2B, in other examples, the functionalityof I/O device 222 may be implemented using other types of I/O devices,such as, for example, a secondary computing device in communication witha primary computing device. Further, in other examples, functionsachieved by activation of buttons of I/O device 222 may be achievedthrough other types of user inputs. For example, in the case where anI/O device includes a touchscreen, gesture recognition, and/or voicerecognition, virtual buttons may be presented on the touchscreen andfunctions achieved by activation of buttons on I/O device 222 may beachieved through any and all combinations of virtual button activation,motion gestures, and/or voice commands. In one example, an I/O devicemay have voice recognition capabilities and a function achieved byactivation of content assistant button 290 may be achieved by a usersaying “Assist,” or a similar phrase.

In the example illustrated in FIG. 2B, I/O device 222 includes basictelevision controls 260, playback controls 270, navigational controls280, and content assistant button 290. Basic television controls 260 maybe configured to enable a user to perform basic tuning and volumecontrol functions associated with viewing television programming. Asillustrated in FIG. 2B, basic television controls 260 include numerickeypad 261, enter button 262, previous channel button 263, channelchange buttons 264, and volume control buttons 265. Numeric keypad 261,enter button 262, previous channel button 263, and channel changebuttons 264 may be configured to enable a user to tune to a particularanalog and/or digital channel. Upon a user entering a sequence ofnumbers using numeric keypad 261 and, optionally, additionallyactivating enter key 262, a tuner may tune to a specified channel. Uponactivation of previous channel button 263, a tuner may tune to apreviously tuned channel. Activation of “+” and “−” channel buttons 264may respectively cause a tuner to tune to the respective next channel ina sequence of channels. Activation of “+” and “−” volume control buttons265 may respectively cause the output of an audio system to be increasedor decreased. It should be noted that although the basic televisioncontrols 260 may be configured to enable a user to perform basic tuningand volume control functions associated with a television, in someexamples, basic television controls 260 may be used to perform otherfunctions associated with a computing device.

Playback controls 270 may be configured to enable a user to control theplayback of and/or record multimedia content. For example, playbackcontrols 270 may enable a user to control the playback of a videooriginating from a media service provider site, an on demand engine,and/or a personal video recorder (PVR). As illustrated in FIG. 2B,playback controls 270 include reverse playback button 271, normalplayback button 272, forward playback button 273, stop playback button274, pause playback button 275, and record button 276. Reverse playbackbutton 271 may enable to a user to navigate to a previous point in amultimedia sequence. Upon activation, normal playback button 272 maycause normal playback of an item of multimedia content to begin orresume. Forward playback button 273 may enable a user to navigate to afuture point in a multimedia sequence. Upon activation, stop playbackbutton 274 may cause the playback of an item of multimedia content tocease. Upon activation, pause playback button 275 may cause the playbackof an item of multimedia content to be paused. Record button 276 mayenable a user to cause an item of multimedia content to be stored to astorage device. In one example, record button 276 may enable a user torecord content to a storage device. It should be noted that althoughplayback controls 270 may be configured to enable a user to control theplayback of and/or record multimedia content, in some examples playbackcontrols 270 may be used to perform other functions associated with acomputing device.

As described above, devices with digital media playback capabilities,including, for example, televisions, set top boxes, and mobile devices,may be configured to provide users thereof with graphical userinterfaces that enable the selection of content. Navigational controls280 may be configured to enable a user to navigate graphical userinterfaces and select content using a graphical user interface. In oneexample, navigational controls 280 may be configured to enable a user tonavigate graphical user interfaces and access items of content accordingto the techniques described herein.

In the example illustrated in FIG. 2B, navigational controls 280 includenavigational arrow buttons 281, select button 282, information button283, menu button 284, guide button 285, back button 286, and exit button287. Navigational arrow buttons 281 may be configured to move theposition of a cursor associated with a graphical user interface and/orchange the selection of an item included in a graphical user interface.Select button 282 may enable a user to further select an icon. In oneexample, consecutive activations of select button 282 may causerespective levels of selection to occur. Information button 283 may beconfigured to cause additional information associated with an item ofcontent of to be displayed. For example, when an icon representing anitem of content is initially selected, activation of information button283 may cause information associated with the content (e.g., cast andcrew information) to be displayed.

Menu button 284, guide button 285, back button 286, and exit button 287may be configured to enable a user to cause different graphical userinterfaces to be presented. Upon activation, menu ⁻button 284 may causea graphical user interface including a high level menu to be displayed.In one example, a high level menu may include a menu that enables a userto change settings associated with the operation of a computing device.In one example, a high-level menu may include a menu that enables a userto select a user profile (e.g., a log-in graphical user interface). Uponactivation, guide button 285 may be configured to provide a graphicaluser interface that enables a user to select content. In one example,upon activation of guide button 285, a graphical user interfaceincluding a grid guide may be presented to a user. Back button 286 maybe configured to enable a user to return to a previous graphical userinterface. Exit button 287 may be configured to enable a user to returnto a full screen viewing mode. For example, when a graphical userinterface is displayed, upon activation of exit button 287, thegraphical user interface may disappear” and full screen content viewingmode may be presented to a user.

As described above, applications 208 may cause computing device 200 toperform functions associated with the example techniques describedherein that enable a user to access items of content. Content assistantbutton 290 may cause computing device 200 to initiate execution of anapplication that causes computing device 200 to perform functionsassociated with the example techniques described herein. That is,content assistant button 290 may launch a content assistant application.As described in detail below a content assistant application may causeone or more graphical user interfaces to be presented. Examples ofgraphical user interfaces are described in detail below with respect toFIGS. 4-6C.

Referring again to FIG. 2A, computing device 200 is configured to sendand receive data via a television network, such as, for example,television network 106 described above and send and receive data via apublic network, such as, for example, public network 108. Acommunications network may be described based on a model includinglayers that define communication properties, such as, for example,physical signaling, addressing, channel access control, packetproperties, and data processing in a communications system. In theexample illustrated in FIG-. 2A, modern 212, transport module 214, andAV demux 216 may be configured to perform lower layer processingassociated with television network 106 and network interface 218 may beconfigured to perform lower layer processing associated with publicnetwork 108.

In one example, modern 212 may be configured to perform physicalsignaling, addressing, and channel access control according to thephysical and MAC layers utilized in a television provider network, suchas, for example, television provider network 106. In one example, modem212 may configured to receive signals from a coaxial cable and/or anover-the-air signal and perform low level signal processing (e.g.,demodulation). In one example, modem 212 may be configured to extracttransport streams from signals received from a coaxial cable. In oneexample, a transport stream may be based on a transport stream definedby the Moving Pictures Experts Group (MPEG). In one example, a transportstream may include a plurality of program streams where each programstream respectively corresponds to a program available from a televisionnetwork. Further, a transport stream may include a plurality of datastreams (e.g., Program Map Table and EPG data).

Transport module 214 may be configured to receive data from modem 212and process received data. For example, transport model 214 may beconfigured to receive a transport stream including a plurality ofprogram streams and extract individual program streams from a receivedtransport stream. In one example, a program stream may include a videostream, an audio stream, and a data stream. AV demux 216 may beconfigured to receive data from transport module 214 and processreceived data. For example, AV demux 216 may be configured to receive aprogram stream from transport module 214 and extract audio packets,video packets, and data packets. That is, AV demux 216 may applydemultiplexing techniques to separate video streams, audio streams, anddata streams from a program stream. In one example, AV demux 216 may beconfigured to decapsulate packetized elementary video and audio streamsfrom a transport stream defined according to MPEG-2 Part 1. It should benoted that although modem 212, transport module 214, and AV demux 216are illustrated as distinct functional blocks, the functions performedby modem 212, transport module 214, and AV demux 216 may be highlyintegrated and realized using any combination of hardware, firmwareand/or software implementations.

Network interface 218 may be configured to enable computing device 200to send and receive data via a public network. As described above, datasent or received via a public network may include data associateddigital content, such as, for example, music, videos, images, webpages,messages, voice communications, and applications. Network interface 218may include a network interface card, such as an Ethernet card, anoptical transceiver, a radio frequency transceiver, or any other type ofdevice configured to send and receive information. Network interface 218may be configured to perform physical signaling, addressing, and channelaccess control according to the physical and MAC layers utilized in apublic network, such as, for example, public network 108. Further, in amanner similar to that described above with respect to transport module214 and AV demux 216, network interface 218 may be configured to extractaudio packets, video packets, and data packets from a data stream. Forexample, network interface 218 may be configured to extract videopackets, audio packets, and data packets according to one or more ofinternet protocol (IP), transport control protocol (TCP), real timestreaming protocol (RTSP), user datagram protocol (UDP), real timeprotocol (RTP), MPEG transport stream protocols, and IPTV protocols. Itshould be noted, that the techniques described herein are generallyapplicable to any and all methods of digital content distribution andare not limited to particular communications network implementations.For example, the techniques described herein may be applicable todigital content originating from one or more of a broadcast, amulticast, a unicast, an over-the-top content source, a personal videorecorder (PVR), and a peer-to-peer content source.

Referring again to FIG. 2A, data associated with digital content, suchas, for example, music, videos, images, webpages, messages, voicecommunications, and applications may be stored in a computer readablemedium, such as, for example, system memory 204 and storage devices 220.Data stored in a memory device may be retrieved and processed by CPU(s)202, audio decoder 224, audio processor 226, video decoder 228, graphicsprocessing unit 230, and display processor 232. As described above,CPU(s) 202 may be capable of retrieving and processing instructions,code, and/or data structures for implementing one or more of thetechniques described herein. Each of audio decoder 224, audio processor226, video decoder 228, graphics processing unit 230, and displayprocessor 232 may also be capable of retrieving and processinginstructions, code, and/or data structures for implementing one or moreof the techniques described herein.

Audio decoder 224 may be configured to retrieve and process coded audiodata. For example, audio decoder 224 may be a combination of hardwareand software used to implement aspects of audio codec. Audio data may becoded using multi-channel formats such as those developed by Dolby andDigital Theater Systems. Audio data may be coded using a compressed oruncompressed format. Examples of compressed audio formats includeMPEG-1, 2 Audio Layers II and III, AC-3, AAC, and Ogg Vorbis. An exampleof an uncompressed audio format includes pulse-code modulation (PCM)audio format. Audio processor 226 may be configured to retrieve capturedaudio samples and may process audio data for output to an audio system(not shown). In some examples, audio processor 226 may include a digitalto analog converter. An audio system may comprise any of a variety ofaudio output devices such as headphones, a single-speaker system, amulti-speaker system, or a surround sound system.

Video decoder 228 may be configured to retrieve and process coded videodata. For example, video decoder 228 may be a combination of hardwareand software used to implement aspects of video codec. In one example,video decoder 228 may be configured to decode video data encodedaccording to any number of video compression standards, such as ITU-TH.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 or ISO/IEC MPEG-2 Visual.ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264 (also known as ISO/IECMPEG-4 AVC), VP8, and High-Efficiency Video Coding (HEVC).

As described above, a device with media playback capabilities mayprovide a graphical user interface that enables a user to access itemsof content. A graphical user interface may include images and graphicsdisplayed in conjunction with video content (e.g., playback iconsoverlaid on a video). Graphics processing unit 230 is an example of adedicated processing unit that may be configured to generate graphicaluser interfaces, including the graphical user interfaces describedherein. That is, graphics processing unit 230 may be configured toreceive commands and content data and output pixel data. Graphicprocessing unit 230 may operate according to a graphics pipeline process(e.g., input assembler, vertex shader, geometry shader, rasterizer,pixel shader, and output merger). Graphics processing unit 230 mayinclude multiple processing cores and may be configured to operateaccording to OpenGL (Open Graphic Library, managed by the Khronos Group)and/or Direct3D (managed by Microsoft. Inc.).

Display processor 232 may be configured to retrieve and process pixeldata for display. For example, display processor 232 may receive pixeldata from video decoder 228 and/or graphics processing unit 230 andoutput data for display. Display processor 232 may be coupled to adisplay, such as display 250 (not shown in FIG. 2A) using a standardizedcommunication protocol (e.g., HDMI, DVI, DisplayPort, component video,composite video, and/or VGA). Display 250 may comprise one of a varietyof display devices such as a liquid crystal display (LCD), a plasmadisplay, an organic light emitting diode (OLED) display, or another typeof display device capable of presenting video data to a user. Display250 may include a standard definition television, a high definitiontelevision, or an ultra-resolution display as described above. Further,display 250 may include an integrated display of a portable computingdevice (e.g., a mobile phone, a laptop, a personal data assistant (PDA),or a tablet device). As described above, in some examples a portablecomputing device may operate as an I/O device for a stationary computingdevice.

As described above, using current techniques it may be difficult for auser of a device having digital media playback capabilities to determinethe availability and accessibility of particular item of contents.Further, it may be even more difficult and time consuming for a user todetermine the availability and accessibility of particular items ofcontent within a defined set of items of content across multipleservices using current techniques. Computing device 200 represents anexample of a device that may be configured to present a graphical userinterface enabling a user to set constraints with respect to accessingitems of content, provide a graphical user interface enabling a user todefine a subset of items of content from a set of items of content,generate one or more access plans based at least in part on theconstraints and the subset of items of content, and present a graphicaluser interface enabling a user to accept one of the one or more accessplans.

FIG. 3 is a conceptual communications flow diagram illustrating anexample method for enabling a user to access items of content accordingto one or more of the techniques of this disclosure. It should be notedthat although in the example illustrated in FIG. 3 communications areillustrated as occurring between distinct sites and functions areillustrated as occurring at particular sites, such an illustration isfor descriptive purposes and does not limit the techniques describedherein to a particular physical architecture. For example, contentassistant engine 126 and/or search aggregator 124 may be implemented asa combination of hardware, firmware and/or software included as part ofcomputing device 200.

As described above, computing device 200 may cause one or more graphicaluser interfaces to be presented, for example, upon a user launching acontent assistant application. Referring to FIG. 3, computing device 200may be configured to receive information from a user through a graphicaluser interface and provide the information to content assistant engine126. Further, computing device 200 may be configured to receiveinformation from content assistant engine 126 and provide theinformation to a user through a graphical user interface. As illustratedin FIG. 3, computing device 200 provides user constraints to contentassistant engine 126 (302). In one example, computing device 200 may beconfigured to provide a graphical user interface to a user that enablesa user to provide user constraints. FIG. 4 illustrates an example of agraphical user interface that may be presented to a user that enables auser to provide user constraints.

In one example, graphical user interface 400 may to be presented to auser at the beginning of a viewing period, e.g., on a monthly or othersubscription period basis. As such, the types of constraints included ingraphical user interface 400 may correspond to constraints that arelikely to change on a monthly basis. For example, if a user plans ontraveling a particularly month, a user's budget and/or schedule maychange. In the example illustrated in FIG. 4, graphical user interface400 includes service constraint pane 402, budget constraint pane 404,and schedule constraint pane 406. Each of service constraint pane 402,budget constraint pane 404, and schedule constraint pane 406 may beselected by a user (e.g., using navigational control 280) and upon beingselected, a user may specify particular constraints within the pane. Inthe example illustrated in FIG. 4, service constraint pane 402 isselected and a user may select icons representing potential services andselect services that a user wishes to access items of content from. Thismay include services that are supported by a user's device and/orservices a user currently has access or a subscription to. In theexample illustrated in FIG. 4, all services except VUDU are selected. Ina similar manner, a user may select a budget (e.g., $19.99), and aschedule, e.g., a preferred time for accessing items of content (e.g.,weekends). In one example, a user may initially provide deviceinformation (e.g., identifying information for a digital television),credentials for current subscriptions (e.g., user names and passwords),and/or billing information (e.g., credit card information). In thismanner, graphical user interface 400 may be customized based oninformation initially provided by a user. For example, if a user'sdevice does not support a particular service, the service may not beincluded in service constraint pane 402.

It should be noted that although, three types of constraint panes areillustrated in the example of FIG. 4, in other examples fewer or moretypes of constraints may be provided. For example, a user may provideconstraints with respect to item of content ratings e.g., specifyingthat the user only wishes to access family friendly content). Further,additional graphical user interfaces enabling a user to set additionalconstraints may be provided by computing device 200. FIG. 7 illustratesan example of a graphical user interface that may be presented to a userthat enables a user to provide user constraints. In the example,illustrated in FIG. 7, graphical user interface 700 may present a userwith constraint types that are likely to change less frequently thanthose included in FIG. 4. For example, a family with children willlikely want to limit access to mature content for an extended period oftime.

In the example illustrated in FIG. 7, graphical user interface 700includes maximum content rating slider bar 702, maximum number ofrecommended plans slider bar 704, and minimum number of movies in arecommended plan slider bar 706. Maximum content rating slider bar 702enables a user to set the maximum rating of items of content that willbe available in a recommended plan. As described in further detailbelow, this may cause a list of available items of content for selectionto be filtered. Maximum number of recommended plans slider bar 704 mayenable a user to set the number of plans that are presented to a user(e.g., presented in graphical user interface 600). For example, theremay be dozens (or potentially more) plans that satisfy user criteria anda user may prefer to review and select a plan from a limited number ofplans, e.g., 2-6. It should be noted that the number of plans thatsatisfy a user's constraints increases as a user's constraints arerelaxed. For example, more potential plans may satisfy a user'sconstraints, if a user's budget is unlimited. As described in furtherdetail below, content assistant engine 126 may rank plans according toone or more criteria (e.g., total number of items of content in plan,user preferences for types of content, etc.). Thus, when multiple planssatisfy a user's constraints, a limited number of the highest rankingplans may be presented.

Minimum number of items of content in a recommended plan slider bar 706may enable a user to set the number of items of content required to beincluded in a plan for a plan to be available for selection (e.g.,presented in graphical user interface 600). For example, a user may wishto consider plans having a threshold number of items of content. Forexample, a user may wish to subscribe to a service if the serviceincludes at least two or more items of content. In this manner,additionally or alternatively, graphical user interface 700 may includean option to set a minimum number of items of content included in asubscription service slider bar. In this manner, graphical userinterface 700 enables a user to set constraints with respect topotential items of content that may be included in a plan, setconstraints with respect to the number of potential plans that arepresented to the user for selection, and/or set constraints with respectto minimum criteria that are met for a plan to be presented forpotential selection.

Referring again to FIG. 4, graphical user interface 400 includes buildwatchlist icon 408. A user may activate build watchlist icon 408 after auser has provided constraint information. Upon activation, buildwatchlist icon 408 may cause graphical user interface 500 illustrated inFIG. 5 to be presented. Further, referring again to FIG. 3, upon a useractivating build watchlist icon 408, computing device 200 may provideuser constraints to content assistant engine 126 (302). In the exampleillustrated in FIG. 3, after receiving user constraints, contentassistant engine 126 provides a list of prescreened available items ofcontent to computing device 200 (304). A list of prescreened availableitems of content may be generated based on received user constraints.For example, content assistant engine 126 may prescreen a complete listof available items of content to a smaller list based on servicesselected by a user, maximum content ratings, or the like. It should benoted that in other examples, a complete list of available items ofcontent may be provided.

As illustrated in FIG. 3 computing device 200 provides a subset of itemsof content to content assistant engine 126 (306). In one example,computing device 200 may be configured to provide a graphical userinterface that enables a user to provide a subset of items of content.FIGS. 5A-5B illustrate an example of a graphical user interface that maybe presented to enable a user to provide a subset of items of content.In the example illustrated in FIG. 5A, graphical user interface 500 maybe similar to graphical user interfaces described in commonly assigned,currently pending, U.S. patent application Ser. No. 14/336,758, filedJul. 21, 2014, which is hereby incorporated by reference in itsentirety. In another example, a graphical user interface that may bepresented to a user to enable a user provide a subset of items ofcontent may include a graphical user interface similar to the graphicaluser interfaces described in commonly assigned, currently pending, U.S.patent application Ser. No. 14/577,269, filed Dec. 19, 2014. It shouldbe noted that a graphical user interface enabling a user to provide asubset of items of content may be optimized to enable a user toefficiently select dozens of items of content from a set of hundreds ofitems of content and may differ from a graphical user interface designedto enable a user to select a single item of content for viewing from aset of dozens of items of content. For example, graphical user interface500 may present hundreds of items of content in a single view.

As illustrated in FIG. 5A, graphical user interface 500 includes aplurality of icons representing items of content (e.g., movie posters)organized into respective stack structures 502 and stack structures504A-504B. Each stack structure may represent sub-categories of content(e.g., movies having titles from A-D, movies having titles from E-F, andmovies having titles from G-L). As illustrated in FIG. 5A, a user mayscroll to the right to view additional stack structures representingadditional sub-categories of content. In the example illustrated in FIG.5A, stack structure 502 is selected and as such may be made availablefor additional levels of selection. In one example, a user may activateone or more controls on an I/O device (e.g., a single tap or a doubletap on a touch-sensitive display, and/or activation of select button282) to indicate a further selection of stack structure 502. FIG. 5B isa conceptual diagram illustrating an example of a graphical userinterface that may be presented when a user indicates a furtherselection for stack structure 502. As illustrated in FIG. 5B, graphicaluser interface 500 includes a plurality icons representing movies havingtitles from E to F. A user may select each item of content included inthe graphical user interface illustrated in FIG. 5B (e.g., by usingnavigational controls 280) and indicate a viewing priority for aselected item of content (e.g., through sequential activations of selectbutton 282, which causes a corresponding number of star outlines tobecome filled). In this manner, graphical user interface 500 may enablea user to indicate a viewing priority for each of a plurality of itemsof content. In the example illustrated in FIG. 5B, viewing prioritiesinclude high, medium, low, and none. Items of content including at leasta low viewing priority may be included in a user watchlist, i.e., withina subset of items of content. It should be noted that in some examplesthe number of items that may be included in a subset may be limited. Forexample, in one example, a user may be limited to selecting 10-20 itemsof content and a message may be provided to the user indicating that thewatchlist is full (i.e., a maximum number of items of content have beenselected).

As described in detail below, content assistant engine 126 may use userviewing priority values to generate recommended plans (e.g., rank a planbased on the viewing priority of each item of content included in theplan). Further, in some examples, content assistant engine 126 mayderive more general user preferences from viewing priority information.For example, if the majority of items of content included as having ahigh viewing priority are classified as being in the Action/Adventuregenre, content assistant engine 126 may determine that a user generallyprefers Action movies. Further, in some examples, graphical userinterfaces may be presented to a user that enable a user to provide,either implicitly and/or explicitly, preference information. FIG. 8 is aconceptual diagram illustrating an example graphical user interface thatmay enable a user to provide preference information.

In the example illustrated in FIG. 8, graphical user interface 800includes category comparison sliders 802A-802C. It should be noted thatalthough in the example illustrated in FIG. 8 the categories ofcomparison correspond to genre, in other examples, the categories ofcomparison may corresponded to other information that may be used todetermine the preferences of a user. For example, category comparisonsliders may include any combination of actors, directors, genres, and/orrelease date. In the example illustrated in FIG. 8, a user may set aslider value to one of Strongly Disagree (SD), Disagree (D), Nopreference (N), Agree (A), Strongly Agree (SA). Further, in one example,graphical user interface may include binary preference options (i.e.,Disagree or Agree). In another example, a user may provide binarypreferences by selected one of two images representing an item ofcontent. For example, two movie poster icons (or actor icons, directoricons, or the like) may be presented on display 250 with a message“Which do you prefer?” and a user may select the icon according to hisor her personal preference.

Referring again to FIG. 3, computing device 200 provides the subset ofitems of content to content assistant engine 126 (306) and provides userpreference information to content assistant engine 126, which mayinclude viewing priorities and, optionally, general user preferenceinformation. Upon receiving a subset of items of content, contentassistant engine 126 may convert the subset of item of content into aquery set (308). That is, in one example, computing device 200 mayprovide a subset of content items to content assistant engine 126according to one metadata format and content assistant engine 126 mayconvert the metadata format into another metadata format for searchpurposes. For example, content assistant engine 126 may receive a listof titles for each item of content in the subset and may convert eachtitle in the list to one or more keywords (e.g., a director and titlekeyword) that may more uniquely identify each item of content or aunique identifier for purposes of performing queries. It should be notedthat in some examples a conversion may be unnecessary. That is,computing device 200 may be configured to provide metadata in a formatthat may be used for search queries.

As illustrated in FIG. 3, content assistant engine 126 provides a queryset to search aggregator 124 (310). As described above, searchaggregator 124 may be configured to perform a plurality of queries andgenerate aggregated results. Upon receiving a query set, searchaggregator 124 queries media services sites 118A-118N for each of itemsA to item N included in a subset of items of content and media servicesites 118A-118N provide a search result for each item of content (312).In one example, a result may include availability information associatedwith an item of content (e.g., an indication of whether the item ofcontent is available through the media service) and accessibilityinformation associated with an item of content (e.g., the price toaccess the item of content). It should be noted that in the exampleillustrated in FIG. 3, although search aggregator is illustrated assequentially querying media service site 118A for each item of contentand then sequentially querying each subsequent media service site foreach item of content, such an illustration does not limit searchaggregator 124 to a particular search methodology. That is, thetechniques described herein may be generally applicable regardless ofparticular search algorithms. Further, it should be noted that in someexamples, search aggregator 124 may maintain a database indicating theavailability and accessibility of items of content and may not need toquery each media service site upon receiving a set of queries. That is,recent query results may be stored at search aggregator 124.

Search aggregator 124 aggregates the results for each query (314) andprovides the aggregated query results to content assistant engine (316).Upon receiving the query results, content assistant engine 126 mayprocess a set of user constraints, a user defined subset of items ofcontent, user preferences (e.g., each item of content in the subset maybe associated with a viewing priority and/or general preferences may beprocessed), availability and accessibility information associated withitems of content within the subset (318). In one example, contentassistant engine 126 may generate recommendations for accessing items ofcontent based on a set of user constraints, a user defined subset ofitems of content, availability and accessibility information associatedwith item of contents and/or user preference information. In oneexample, a recommendation may be referred to as an access plan. Anaccess plan may be described as one or more services that enable auser's access to items of content within a subset of items of contentgiven the user's constraints and preferences.

In one example, content assistant engine 126 may generate access plansbased on a hierarchical approach. For example, content assistant engine126 may first determine which subscription based streaming services(e.g., services that provide unlimited access to items of content for amonthly fee) are within a user's budget and/or include a minimum numberof items of content (e.g., as specified according to a global settingsgraphical user interface). For each subscription based streaming servicewithin a user's budget and/or including a minimum number of items ofcontent, content assistant engine 126 may rank each service based on thenumber of items of content available through the service that areincluded in a defined subset of items of content. For example, oneservice may provide access to 6 out of 20 items of content and anotherservice may provide access to 5 out of 20 items of content. Further, inone example, content assistant engine 126 may further rank eachsubscription based streaming service by weighing available items ofcontent based on a viewing priority associated with each item ofcontent. For example, items of content may be given the followingweights based on viewing priority: 3 for high, 2 for medium, and 1 forlow. In this example, four high priority items of content may rankhigher than six low priority items of content (i.e., 12 vs. 6)).Further, in one example, each item of content may be given an additionalweight based on whether the item of content corresponds to a generaluser preference. For example, in the case where a user prefers actionmovies, a value of 1 may be added to a viewing priority weight. In oneexample, content assistant engine 126 may further rank each subscriptionbased streaming service based on accessibility, e.g., price. Forexample, a $7.99 monthly service may weighed higher than a $9.99 monthlyservice. In one example, the price may be divided by the total budgetand multiplied by the weighted sum of items of content. Equation 1 belowprovides an example of how a subscription service may be ranked:

Ranking_(S)=(Budget/Price)*((W _(VP) +W _(GP))¹+ . . . +(W _(VP) +W_(GP))_(n))   (1)

where

-   -   Price includes the price to access the subscription service;    -   Budget includes the budget set by the user. It should be noted        that if Budget is set to unlimited or where Price is equal to        zero (i.e., free to access) the value of (Price/Budget) may be        set equal to a default maximum value;    -   W_(VP) includes a viewing priority weight and W_(GP) includes a        general preference weight for each of the items of content 1 to        n available through the subscription service.

In one example, after ranking each subscription based streaming service,content assistant engine 126 may select a subscription based streamingservice for inclusion in an access plan and continue to optimize auser's budget by ranking items of content accessible through pay peruse. For example, content assistant engine 126 may determine theremaining available budget after subtracting a monthly subscription feeof a streaming service and optimize any remaining budget by rankingitems of content based on price, viewing priority, and/or generalpreference. Content assistant engine 126 may determine each availableitem of content that can be accessed with the remaining budget and rankeach item of content. Equation 2 below provides an example of howindividual items of content may be ranked:

Ranking_(C)=(Budget Remaining/Price)*(W _(VP) +W _(GP))   (2)

where

Price includes the price to access an individual item of content;

Budget Remaining equals the budget set by a user minus the budget of asubscription service included in an access plan, it should be noted thatif Budget is set to unlimited or where Price is equal to zero, the valueof (Price/Budget Remaining) may be set equal to a default maximum value;

W_(VP) includes a viewing priority weight for the item of content andW_(GP) includes a general preference weight for an item of content.

An example case of ranking items of content may include a case where ifa remaining budget is $9.99, content assistant engine 126 may includethe option of renting two high viewing priority movies for $4.99 each oralternatively renting three medium viewing priority movies for $2.99each based on viewing priority values and/or general preference values.In this manner, in one example, the sum of Ranking_(s) (or analternative ranking value) for a subscription based streaming serviceand the Ranking_(C) each item of content may be used to rank an accessplan.

As illustrated in FIG. 3, access plans may be provided to computingdevice 200 (320). Upon receiving recommendations, computing device 200may be configured to generate a graphical user interface presentingaccess plans to user and enable a user to access items of contentthrough services included in an access plan. As described above, thenumber of recommended access plans presented to a user may be limitedbased on a global setting. For example, a user may only wish to choosebetween two access plans. In this case, the highest ranking access plansmay be presented to a user. FIGS. 6A-6C are conceptual diagramsillustrating example graphical user interfaces that may enable a user toaccess items of content based on recommendations provided by contentassistant engine 126. As illustrated in FIG. 6A, graphical userinterface 600 includes recommendation panes 602A-602B. In the exampleillustrated in FIG. 6A, a user may select a recommendation pane (e.g.,using navigational arrows 280). As further illustrated in FIG. 6A, auser may scroll to the right to view and select additionalrecommendation panes (if available). Thus, any number of recommendationsmay be presented to a user.

As illustrated in FIG. 6A, a recommendation pane includes a summary ofan access plan (e.g., “Plan One: 8 movies for $19.97) and a summary ofeach service included in the recommendation (e.g., “Subscribe to Netflixto watch 5 of your movies for $9.99,” “Rent 2 of your movies on VUDU for$9.98,” and “Watch 1 of you movies of Crackle for Free”). Eachrecommendation pane includes accept link 604 and details link 606. Uponactivation, details link 606 may cause a graphical user interfaceincluding more detailed information for an access plan to be presented.FIG. 6B illustrates an example of a graphical user interface includingmore detailed information for an access plan.

As illustrated in FIG. 6B, recommendation pane 602A displays titles ofitems of content, specific price information, and an indication ofviewing priority for each item of content. An indication of viewingpriority for each item of content may be illustrated using one or moretechniques (e.g., font types, color coding, etc.). Further, asillustrated in FIG. 69, recommendation pane 602A includes accept link604. Upon activation of accept link 604, computing device 200 mayperform actions that facilitate access of items of content by a user.For example, computing device 200 may cause a user to sign-up forservices e.g., using user provided billing information), cancel existingservices, and/or queue up the items of content (e.g., add items ofcontent to a queue provided by a service). It should be noted that thelevel of facilitation may depend on information provided by a user,preferences provided by a user, and/or the level of facilitationsupported by a service. For example, upon accepting a recommended accessplan, a user may or may not wish to confirm a purchase of asubscription. Thus, one or more intermediate graphical user interfacesmay be presented to a user, upon a user accepting a recommendation. FIG.6C illustrates an example of a graphical user interface that may bepresented upon a user accepting a recommended access plan. Asillustrated in FIG. 6C, graphical user interface 600 includes arecommendation accepted pane 608 which includes icons that uponactivation, enable a user to access items of content through aparticular service. In this manner, computing device 200 represents anexample of a computing device configured to facilitate access to itemsof content.

In one example, in addition to generating access plans, contentassistant engine 126 may manage subscription services on behalf of auser. For example, content assistant engine 126 may include one or moreservers storing information associated with an account of a user. In oneexample, a user may be able to add a credit equivalent to his or heraccount. In one example, content assistant engine 126 may communicatewith media service providers 118A-118N to enable computing device 200 toaccess services. Further, content assistant 126 may communicate withmedia service providers 118A-118N to enable computing device 200 tocancel, and, for example, not be charged for access to a service. Inthis manner, content assistant engine 126 may act as agent for a userand abstract the management of services. Further, in one example,content assistant engine 126 may cause items of content included in anaccepted access plans to be queued up (e.g., added to a watch list) forrespective services.

As described herein, in one example, a method of facilitating access toitems of content comprises presenting a graphical user interfaceenabling a user to set constraints with respect to accessing items ofcontent, providing a graphical user interface enabling a user to definea subset of items of content from a set of items of content, receivingone or more access plans based at least in part on the constraints andthe subset of items of content, and presenting a graphical userinterface enabling a user to accept one of the one or more access plans.In one example, enabling a user to set constraints includes enabling auser to set a monthly budget constraint. In one example, enabling a userto set constraints includes enabling a user to set a maximum maturityrating for items of content. In one example, the set of items of contentincludes a prescreened set of items of content based at least in part onthe constraints. In one example, the method further comprises enabling auser to associate a viewing priority for each item of content in thesubset of items of content, and generating one or more access plans isfurther based at least in part on an associated viewing priority. In oneexample, an access plan specifies one or more digital media servicesproviding availability to at least one item of content included in thesubset of items of content. In one example, an access plan specifies atleast one digital media service to provide access to at least one itemof content included in the subset of items of content accessible basedon a monthly subscription fee and at least one other digital mediaservice to provide access to at least one item of content included inthe subset of items of content based on a pay per use fee. In oneexample, presenting the graphical user interface enabling a user toaccept one of the one or more access plans presents a number ofrecommended access plans based on a user constraint.

As described herein, in one example, an apparatus for facilitatingaccess to items of content comprises means for receiving a budgetconstraint with respect to accessing items of content, means forreceiving a subset of items of content, where each item of contentwithin the subset is associated with a viewing priority, and means forgenerating an access plan based on the budget constraint, wherein theaccess plan specifies one or more digital media services to provideaccess to the items of content based on a fee associated with theaccessing each item of content by the one or more digital mediaservices, wherein the fee is a subscription fee or pay per use fee. Inone example, the budget constraint includes a monthly budget constraint,an item based budget constraint, or a profile based budget constraint.In one example, generating the access plan further comprises ranking theone or more digital media services based at least in part on a totalnumber of items of the subset of items of content available through eachdigital media service of the one or more digital media services. In oneexample, ranking the one or more digital media services further includesassigning a weight value to each item of content available through thedigital media service of content within the subset. In one example, theweight value is based at least in part on the viewing priority value, ageneral preference value, or the budget constraint.

As described herein, in one example, a system for facilitating access toitems of content comprises a content assistant engine comprising aprocessing device configured to receive one or more constraintsassociated with accessing items of content, provide a prescreened set ofavailable items of content based on the received constraint, receive asubset of items of content within the prescreened set, receive queryresults specifying the items of content within the subset of items ofcontent that are available through one or more media services, andgenerate an access plan based on the received constraints and thereceived query results. In one example, the constraint includes amaximum maturity rating for items of content. In one example, accessplan specifies one or more digital media services to provide at leastone item of content included in the subset of items of content. In oneexample, the access plan specifies at least one digital media service toprovide access to at least one item of content included in the subset ofitems of content, the at least one item of content is accessible basedon a monthly subscription fee, and at least one digital media service isable to provide access to at least one additional item of contentincluded in the subset of items of content, and the at least oneadditional item of content is accessible based on a pay per use fee. Inone example, to generate the access plan includes to select a digitalmedia service based on a ranking value, wherein the selected digitalmedia service provides access to at least one item of content includedin the subset of items of content accessible for a monthly subscriptionfee. In one example, the ranking value is based at least in part on aviewing priority associated with items of content. In one example, theranking value is further based at least in part on a price of themonthly subscription fee.

The disclosed and other embodiments, modules and the functionaloperations described in this document can be implemented in digitalelectronic circuitry, or in computer software, firmware, or hardware,including the structures disclosed in this document and their structuralequivalents, or in combinations of one or more of them. The disclosedand other embodiments can be implemented as one or more computer programproducts, i.e., one or more modules of computer program instructionsencoded on a computer readable medium for execution by, or to controlthe operation of, data processing apparatus. The computer readablemedium can be a machine-readable storage device, a machine-readablestorage substrate, a memory device, a composition of matter effecting amachine-readable propagated signal, or a combination of one or morethem. The term “data processing apparatus” encompasses all apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them. A propagated signal is an artificially generated signal, e.g.,a machine-generated electrical, optical, or electromagnetic signal.Which is generated to encode information for transmission to suitablereceiver apparatus.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a standalone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program can he stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amark-up language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this document can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Computer readable media suitable for storingcomputer program instructions and data include all forms of non-volatilememory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

While this patent document contains many specifics, these should not beconstrued as limitations on the scope of an invention that is claimed orof what may be claimed, but rather as descriptions of features specificto particular embodiments. Certain features that are described in thisdocument in the context of separate embodiments can also be implementedin combination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesub-combination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asub-combination or a variation of a sub-combination. Similarly, whileoperations are depicted in the drawings in a particular order, thisshould not be understood as requiring that such operations be performedin the particular order shown or in sequential order, or that allillustrated operations he performed, to achieve desirable results.

Only a few examples and implementations are disclosed. Variations,modifications, and enhancements to the described examples andimplementations and other implementations can be made based on what isdisclosed.

1. A method comprising: receiving, from a computing device, first dataspecifying a set of content items selected by a user and second dataspecifying a priority for viewing each content item in the set ofcontent items; determining, by one or more hardware processors, a totalnumber of content items from the set of content items that areaccessible through each digital media service of a plurality of digitalmedia services, each digital media service provided by one or moredigital media service systems: determining, by the one or more hardwareprocessors, a ranking of the plurality of digital media services basedat least in part on the total number of content items from the set ofcontent items that are accessible through each digital media service ofthe plurality of digital media services and the priority for viewingeach content item in the set of content items; generating, by the one ormore hardware processors, a plan including at least one digital mediaservice of the plurality of digital media services for providing accessto at least a portion of the set of content items based on the ranking;and configuring by the one or more hardware processors, access to the atleast one digital media service based on the plan to provide access tospecific content based on the plan.
 2. The method of claim 1, whereinthe identifying of the total number of content items that are accessiblethrough each digital media service of the plurality of digital mediaservices comprises: generating one or more queries based on the set ofcontent items; transmitting the one or more queries to the one or moredigital media service systems; and aggregating one or more responsesreceived from the one or more digital media service systems, each of theone or more responses corresponding to a query in the one or morequeries.
 3. The method of claim 1, wherein the identifying of the totalnumber of content items that are accessible through each digital mediaservice of the plurality of digital media services comprises: accessinga database that includes information indicating accessibility of contentitems provided by one or more digital media services of the plurality ofmedia services.
 4. The method of claim 1, wherein the determining of theranking of the plurality of digital media services is further based onone or more constraints.
 5. The method of claim 4, wherein the one ormore constraints include one or more of: a financial constraint or acontent rating.
 6. The method of claim 4, wherein the one or moreconstraints comprise at least one user specified constraint.
 7. Themethod of claim 1, wherein the at least one digital media serviceprovides access to at least one content item from the set of contentitems based on a monthly subscription fee.
 8. The method of claim 1,wherein the at least one digital media service provides access to atleast one content item included in the set of content items based on apay per use fee.
 9. The method of claim 1, wherein the determining ofthe ranking of the plurality of digital media services includesassigning a weight value to each content item from the set of contentitems that is accessible through each digital media service in theplurality of media services based in part on the priority for viewingeach content item.
 10. The method of claim 1, wherein the priority forviewing each content item includes one of: high, medium, or low.
 11. Asystem comprising: one or more processors; and a memory accessible tothe one or more processors, the memory storing instructions which, uponexecution by the one or more processors, causes the one or moreprocessors to perform operations comprising: receiving, from a computingdevice, first data specifying a set of content items selected by a userand second data specifying a priority for viewing each content item inthe set of content items; determining a total number of content itemsfrom the set of content items that are accessible through each digitalmedia service of a plurality of digital media services, each digitalmedia service provided by one or more digital media service systems;determining a ranking of the plurality of digital media services basedat least in part on the total number of content items from the set ofcontent items that are accessible through each digital media service ofthe plurality of digital media services and the priority for viewingeach content item in the set of content items; generating a planincluding at least one digital media service of the plurality of digitalmedia services for providing access to at least a portion of the set ofcontent items based on the ranking; and configuring access to the atleast one digital media service based on the plan to provide access tospecific content based on the plan.
 12. The system of claim 11, whereinthe identifying of the total number of content items that are accessiblethrough each digital media service of the plurality of digital mediaservices comprises: generating one or more queries based on the set ofcontent items; transmitting the one or more queries to the one or moredigital media service systems; and aggregating one or more responsesreceived from the one or more digital media service systems, each of theone or more responses corresponding to a query in the one or morequeries.
 13. The system of claim 11, wherein the identifying of thetotal number of content items that are accessible through each digitalmedia service of the plurality of digital media services comprises:accessing a database that includes information indicating accessibilityof content items provided by one or more digital media services of theplurality of media services.
 14. The system of claim 11, wherein thedetermining of the ranking of the plurality of digital media services isfurther based on one or more constraints.
 15. The system of claim 14,wherein the one or more constraints include one or more of: a financialconstraint or a content rating.
 16. The system of claim 14, wherein theone or more constraints comprise at least one user specified constraint.17. The system of claim 11, wherein the plan specifies: a first digitalmedia service to provide access to a first content item from the set ofcontent items based on a monthly subscription fee; and a second digitalmedia service to provide access to a second content item included in theset of content items based on a pay per use fee.
 18. The system of claim11, wherein the determining of the ranking of the plurality of digitalmedia services includes assigning a weight value to each content itemfrom the set of content items that is accessible through each digitalmedia service in the plurality of media services based in part on thepriority for viewing each content item.
 19. The system of claim 11,wherein the priority for viewing each content item includes one of:high, medium, or low.
 20. A non-transitory machine readable mediumstoring instructions that, when executed by one or more processors,cause the one or more processors to perform operations comprising:receiving, from a computing device, first data specifying a set ofcontent items selected by a user and second data specifying a priorityfor viewing each content item in the set of content items; determining atotal number of content items from the set of content items that areaccessible through each digital media service of a plurality of digitalmedia services, each digital media service provided by one or moredigital media service systems; determining a ranking of the plurality ofdigital media services based at least in part on the total number ofcontent items from the set of content items that are accessible througheach digital media service of the plurality of digital media servicesand the priority for viewing each content item in the set of contentitems; generating a plan including at least one digital media service ofthe plurality of digital media services for providing access to at leasta portion of the set of content items based on the ranking; andconfiguring access to the at least one digital media service based onthe plan to provide access to specific content based on the plan.